package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 项目税款利润统计表
 * @TableName t_sp_count_tax
 */
@TableName(value ="t_sp_count_tax")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TSpCountTax extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 项目ID
     */
    @TableId(type = IdType.NONE)
    @TableField(value = "project_id", exist = true)
    private Long projectId;

    /**
     * 统计年月：202402
     */
    @TableField(value = "count_date", exist = true)
    private String countDate;

    /**
     * 税率：百分制，6代表6%
     */
    private BigDecimal taxRate;

    /**
     * 开票金额
     */
    private BigDecimal billMoney;

    /**
     * 税额
     */
    private BigDecimal taxMoney;

    /**
     * 收入合计
     */
    private BigDecimal incomeMoney;

    /**
     * 支出合计
     */
    private BigDecimal payMoney;

    /**
     * 利润合计
     */
    private BigDecimal profitMoney;

    /**
     * 利润率：利润合计/收入合计=80，代表80%,
     */
    private BigDecimal profitRate;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 创建人
     */
    private String createPerson;

    /**
     * 修改时间
     */
    private Date updateDate;

    /**
     * 修改人
     */
    private String updatePerson;

    /**
     * 项目名称
     */
    @TableField(exist = false)
    private String projectName;

    /**
     * 费用类型 统计 支出
     */
    @TableField(exist = false)
    private List<TSpCountIncome> countIncomeDisburseList;

    /**
     * 费用类型 统计  收入
     */
    @TableField(exist = false)
    private List<TSpCountIncome> countIncomeIncomeList;


}